home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / sound / pcm_oss.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  89 lines

  1. #ifndef __SOUND_PCM_OSS_H
  2. #define __SOUND_PCM_OSS_H
  3.  
  4. /*
  5.  *  Digital Audio (PCM) - OSS compatibility abstract layer
  6.  *  Copyright (c) by Jaroslav Kysela <perex@suse.cz>
  7.  *
  8.  *
  9.  *   This program is free software; you can redistribute it and/or modify
  10.  *   it under the terms of the GNU General Public License as published by
  11.  *   the Free Software Foundation; either version 2 of the License, or
  12.  *   (at your option) any later version.
  13.  *
  14.  *   This program is distributed in the hope that it will be useful,
  15.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  *   GNU General Public License for more details.
  18.  *
  19.  *   You should have received a copy of the GNU General Public License
  20.  *   along with this program; if not, write to the Free Software
  21.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  22.  *
  23.  */
  24.  
  25. typedef struct _snd_pcm_plugin snd_pcm_plugin_t;
  26. typedef struct _snd_pcm_oss_setup snd_pcm_oss_setup_t;
  27.  
  28. struct _snd_pcm_oss_setup {
  29.     char *task_name;
  30.     unsigned int disable:1,
  31.              direct:1,
  32.              block:1,
  33.              nonblock:1,
  34.              partialfrag:1,
  35.              nosilence:1,
  36.              buggyptr:1;
  37.     unsigned int periods;
  38.     unsigned int period_size;
  39.     snd_pcm_oss_setup_t *next;
  40. };
  41.  
  42. typedef struct _snd_pcm_oss_runtime {
  43.     unsigned params: 1,            /* format/parameter change */
  44.          prepare: 1,            /* need to prepare the operation */
  45.          trigger: 1,            /* trigger flag */
  46.          sync_trigger: 1;        /* sync trigger flag */
  47.     int rate;                /* requested rate */
  48.     int format;                /* requested OSS format */
  49.     unsigned int channels;            /* requested channels */
  50.     unsigned int fragshift;
  51.     unsigned int maxfrags;
  52.     unsigned int subdivision;        /* requested subdivision */
  53.     size_t period_bytes;            /* requested period size */
  54.     size_t period_frames;            /* period frames for poll */
  55.     size_t period_ptr;            /* actual write pointer to period */
  56.     unsigned int periods;
  57.     size_t buffer_bytes;            /* requested buffer size */
  58.     size_t bytes;                /* total # bytes processed */
  59.     size_t mmap_bytes;
  60.     char *buffer;                /* vmallocated period */
  61.     size_t buffer_used;            /* used length from period buffer */
  62.     snd_pcm_plugin_t *plugin_first;
  63.     snd_pcm_plugin_t *plugin_last;
  64.     unsigned int prev_hw_ptr_interrupt;
  65. } snd_pcm_oss_runtime_t;
  66.  
  67. typedef struct _snd_pcm_oss_file {
  68.     snd_pcm_substream_t *streams[2];
  69. } snd_pcm_oss_file_t;
  70.  
  71. typedef struct _snd_pcm_oss_substream {
  72.     unsigned oss: 1;            /* oss mode */
  73.     snd_pcm_oss_setup_t *setup;        /* active setup */
  74.     snd_pcm_oss_file_t *file;
  75. } snd_pcm_oss_substream_t;
  76.  
  77. typedef struct _snd_pcm_oss_stream {
  78.     snd_pcm_oss_setup_t *setup_list;    /* setup list */
  79.         struct semaphore setup_mutex;
  80.     snd_info_entry_t *proc_entry;
  81. } snd_pcm_oss_stream_t;
  82.  
  83. typedef struct _snd_pcm_oss {
  84.     int reg;
  85.     unsigned int reg_mask;
  86. } snd_pcm_oss_t;
  87.  
  88. #endif /* __SOUND_PCM_OSS_H */
  89.